#include <stdio.h>
#include <malloc.h>

// 定义链表节点结构
typedef struct Node {
    int data;               // 节点数据
    struct Node *next;      // 指向下一个节点的指针
} Node;

int main() {
    int k; // 用于存储要获取的索引
    scanf("%d", &k); // 从输入读取索引

    Node *L, *p; // 链表头指针和新节点指针
    L = (Node *)malloc(sizeof(Node)); // 为头节点分配内存
    L->next = NULL; // 初始化头节点的下一个指针为NULL

    int a; // 用于存储输入的数据
    // 循环读取整数，直到输入负数
    while (scanf("%d", &a) && a >= 0) {
        p = (Node *)malloc(sizeof(Node)); // 创建新节点
        p->data = a; // 设置新节点的数据
        p->next = L->next; // 新节点指向当前头节点的下一个节点
        L->next = p; // 更新头节点指向新节点
    }

    // 将 L 向前移动 k 步
    for (int i = 0; i < k; i++) {
        L = L->next; // 移动到下一个节点
    }

    // 检查 L 是否为 NULL，并打印数据或 "NULL"
    if (L) {
        printf("%d\n", L->data); // 打印第 k 个位置的节点数据
    } else {
        printf("NULL\n"); // 如果 k 超过链表长度，打印 NULL
    }

    return 0; // 退出程序
}
